#pragma once

#include <string>
#include <vector>

#include "GasStation.h"

class SystemFacade
{
public:
	SystemFacade();
	virtual ~SystemFacade(void);

	int getNestsCount();
	int getMachinesCount(int nestId);
	int isMachineFree(int nestId, int machineId);
	std::vector<int> getNestOutConnections(int nestId);
	bool hasNestInConnections(int nestId);
	int getBufferCapacity(int nestId);
	int getBufferCount(int nestId);

	void tick();
	void loadNetwork(std::string config);
	std::string readLog();

	int getSeconds();
	std::string getTimeFormatted();
	float getIncome();
	float getIncome1h();
	float getIncome12h();
	float getIncome24h();
	int getHappyCliens();
	int getDiscardedClients();
	float getLastCurveValue();

private:
	GasStation *station;
};

